Generated on March 28 2026 03:30 AM
Old data? UPDATE !
The score is 54/100
Title
WebGL2 Fundamentals
Length : 19
Perfect, your title contains between 10 and 70 characters.
Description
Modern WebGL tutorials that teach WebGL from basic principles
Length : 61
Ideally, your meta description should contain between 70 and 160 characters (spaces included). Use this free tool to calculate text length.
Keywords
webgl graphics
Good, your page contains meta keywords.
Og Meta Properties
Good, your page take advantage of Og Properties.
| Property | Content |
|---|---|
| title | WebGL2 Fundamentals |
| type | website |
| image | https://webgl2fundamentals.org/webgl/lessons/resources/webgl2fundamentals.jpg |
| description | Learn WebGL2 from the ground up. No magic |
| url | https://webgl2fundamentals.org |
Headings
| H1 | H2 | H3 | H4 | H5 | H6 |
| 2 | 0 | 0 | 0 | 0 | 0 |
Images
We found 2 images on this web page.
1 alt attributes are empty or missing. Add alternative text so that search engines can better understand the content of your images.
Text/HTML Ratio
Ratio : 14%
This page's ratio of text to HTML code is below 15 percent, this means that your website probably needs more text content.
Flash
Perfect, no Flash content has been detected on this page.
Iframe
Too Bad, you have Iframes on the web pages, this mean that content in an Iframe cannot be indexed.
URL Rewrite
Good. Your links looks friendly!
Underscores in the URLs
Perfect! No underscores detected in your URLs.
In-page links
We found a total of 82 links including 0 link(s) to files
| Anchor | Type | Juice |
|---|---|---|
| go here | External | Passing Juice |
| How to use WebGL2 | Internal | Passing Juice |
| What's new in WebGL2 | Internal | Passing Juice |
| Moving from WebGL1 to WebGL2 | Internal | Passing Juice |
| Differences from WebGLFundamentals.org to WebGL2Fundamentals.org | Internal | Passing Juice |
| Fundamentals | Internal | Passing Juice |
| How It Works | Internal | Passing Juice |
| Shaders and GLSL | Internal | Passing Juice |
| WebGL2 State Diagram | Internal | Passing Juice |
| Image Processing | Internal | Passing Juice |
| Image Processing Continued | Internal | Passing Juice |
| 2D Translation | Internal | Passing Juice |
| 2D Rotation | Internal | Passing Juice |
| 2D Scale | Internal | Passing Juice |
| 2D Matrices | Internal | Passing Juice |
| Orthographic 3D | Internal | Passing Juice |
| 3D Perspective | Internal | Passing Juice |
| 3D - Cameras | Internal | Passing Juice |
| 3D - Matrix Naming | Internal | Passing Juice |
| Directional Lighting | Internal | Passing Juice |
| Point Lighting | Internal | Passing Juice |
| Spot Lighting | Internal | Passing Juice |
| Less Code, More Fun | Internal | Passing Juice |
| Drawing Multiple Things | Internal | Passing Juice |
| Scene Graphs | Internal | Passing Juice |
| 3D Geometry - Lathe | Internal | Passing Juice |
| Loading .obj files | Internal | Passing Juice |
| Loading .obj w .mtl files | Internal | Passing Juice |
| Textures | Internal | Passing Juice |
| Data Textures | Internal | Passing Juice |
| Using 2 or More Textures | Internal | Passing Juice |
| Cross Origin Images | Internal | Passing Juice |
| Perspective Correct Texture Mapping | Internal | Passing Juice |
| Planar and Perspective Projection Mapping | Internal | Passing Juice |
| Render to Texture | Internal | Passing Juice |
| Shadows | Internal | Passing Juice |
| 2D - DrawImage | Internal | Passing Juice |
| 2D - Matrix Stack | Internal | Passing Juice |
| Sprites | Internal | Passing Juice |
| Cubemaps | Internal | Passing Juice |
| Environment maps | Internal | Passing Juice |
| Skyboxes | Internal | Passing Juice |
| Skinning | Internal | Passing Juice |
| Fog | Internal | Passing Juice |
| Picking (clicking on stuff) | Internal | Passing Juice |
| Text - HTML | Internal | Passing Juice |
| Text - Canvas 2D | Internal | Passing Juice |
| Text - Using a Texture | Internal | Passing Juice |
| Text - Using a Glyph Texture | Internal | Passing Juice |
| GPGPU | Internal | Passing Juice |
| Smallest Programs | Internal | Passing Juice |
| Drawing Without Data | Internal | Passing Juice |
| Shadertoy | Internal | Passing Juice |
| Pulling Vertices | Internal | Passing Juice |
| Indexed Vertices (gl.drawElements) | Internal | Passing Juice |
| Instanced Drawing | Internal | Passing Juice |
| Setup And Installation | Internal | Passing Juice |
| Boilerplate | Internal | Passing Juice |
| Resizing the Canvas | Internal | Passing Juice |
| Animation | Internal | Passing Juice |
| Points, Lines, and Triangles | Internal | Passing Juice |
| Multiple Views, Multiple Canvases | Internal | Passing Juice |
| Visualizing the Camera | Internal | Passing Juice |
| WebGL2 and Alpha | Internal | Passing Juice |
| 2D vs 3D libraries | Internal | Passing Juice |
| Anti-Patterns | Internal | Passing Juice |
| WebGL2 Matrices vs Math Matrices | Internal | Passing Juice |
| Precision Issues | Internal | Passing Juice |
| Taking a screenshot | Internal | Passing Juice |
| Prevent the Canvas Being Cleared | Internal | Passing Juice |
| Get Keyboard Input From a Canvas | Internal | Passing Juice |
| Use WebGL2 as Background in HTML | Internal | Passing Juice |
| Cross Platform Issues | Internal | Passing Juice |
| Questions and Answers | Internal | Passing Juice |
| Attributes | Internal | Passing Juice |
| Texture Units | Internal | Passing Juice |
| Framebuffers | Internal | Passing Juice |
| readPixels | Internal | Passing Juice |
| References | Internal | Passing Juice |
| Helper API Docs | Internal | Passing Juice |
| TWGL, A tiny WebGL helper library | External | Passing Juice |
| github | External | Passing Juice |
Keywords Cloud
webgl1 lighting webgl2 articles text how from canvas fundamentals texture
Keywords Consistency
| Keyword | Content | Title | Keywords | Description | Headings |
|---|---|---|---|---|---|
| webgl2 | 16 | ![]() |
![]() |
![]() |
![]() |
| from | 7 | ![]() |
![]() |
![]() |
![]() |
| texture | 6 | ![]() |
![]() |
![]() |
![]() |
| text | 5 | ![]() |
![]() |
![]() |
![]() |
| canvas | 4 | ![]() |
![]() |
![]() |
![]() |
Url
Domain : webgl2fundamentals.org
Length : 22
Favicon
Great, your website has a favicon.
Printability
We could not find a Print-Friendly CSS.
Language
Good. Your declared language is en.
Dublin Core
This page does not take advantage of Dublin Core.
Doctype
HTML 5
Encoding
Perfect. Your declared charset is UTF-8.
W3C Validity
Errors : 0
Warnings : 0
Email Privacy
Great no email address has been found in plain text!
Deprecated HTML
Great! We haven't found deprecated HTML tags in your HTML.
Speed Tips
![]() |
Excellent, your website doesn't use nested tables. |
![]() |
Too bad, your website is using inline styles. |
![]() |
Great, your website has few CSS files. |
![]() |
Perfect, your website has few JavaScript files. |
![]() |
Perfect, your website takes advantage of gzip. |
Mobile Optimization
![]() |
Apple Icon |
![]() |
Meta Viewport Tag |
![]() |
Flash content |
XML Sitemap
Great, your website has an XML sitemap.
| https://webgl2fundamentals.org/sitemap.xml |
Robots.txt
https://webgl2fundamentals.org/robots.txt
Great, your website has a robots.txt file.
Analytics
Missing
We didn't detect an analytics tool installed on this website.
Web analytics let you measure visitor activity on your website. You should have at least one analytics tool installed, but It can also be good to install a second in order to cross-check the data.
Free SEO Testing Tool is a free SEO tool which provides you content analysis of the website.