r.je

Website review r.je

Tom's PHP programming blog

 Generated on March 25 2026 02:25 AM

Old data? UPDATE !

The score is 66/100

SEO Content

Title

Tom's PHP programming blog

Length : 26

Perfect, your title contains between 10 and 70 characters.

Description

Tom Butler's Programming Blog - MVC in PHP, Best Practices, Separation of Concerns

Length : 82

Great, your meta description contains between 70 and 160 characters.

Keywords

Very bad. We haven't found meta keywords on your page. Use this free online meta tags generator to create keywords.

Og Meta Properties

This page does not take advantage of Og Properties. This tags allows social crawler's better structurize your page. Use this free og properties generator to create them.

Headings

H1 H2 H3 H4 H5 H6
4 27 6 0 0 0
  • [H1] Tom Butler's programming blog
  • [H1] Tom Butler's Programming Blog - PHP, MVC and Best Practices
  • [H1] Code
  • [H1] Articles
  • [H2] Latest updates
  • [H2] Code
  • [H2] MVC Related Articles
  • [H2] Dependencies in code
  • [H2] Best Practices
  • [H2] Put the pro in programmer
  • [H2] Programming Philosophy
  • [H2] Git Forked
  • [H2] Server Administration
  • [H2] Other
  • [H2] Transphporm
  • [H2] Dice
  • [H2] Maphper
  • [H2] Other
  • [H2] Model View Controller (MVC)
  • [H2] Best Practices
  • [H2] Put the pro in programmer
  • [H2] Test Driven Development (TDD)
  • [H2] Server Administration
  • [H2] Programming Philosophy
  • [H2] Other
  • [H2] About the author
  • [H2] Yell at me
  • [H2] Latest updates
  • [H2] Top articles
  • [H2] PHP & MySQL: Novice to Ninja
  • [H2] More...
  • [H3] Model-View-Confusion
  • [H3] Immutable MVC
  • [H3] MVC in PHP series
  • [H3] MVVM
  • [H3] Conceptual discussions
  • [H3] Evil things

Images

We found 2 images on this web page.

Good, most or all of your images have alt attributes.

Text/HTML Ratio

Ratio : 57%

Ideal! This page's ratio of text to HTML code is between 25 and 70 percent.

Flash

Perfect, no Flash content has been detected on this page.

Iframe

Great, there are no Iframes detected on this page.

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 115 links including 0 link(s) to files

Anchor Type Juice
Tom Butler's programming blog Internal Passing Juice
Code Internal Passing Juice
Articles Internal Passing Juice
About Internal Passing Juice
Contact Internal Passing Juice
Transphporm External Passing Juice
Dice Internal Passing Juice
Maphper External Passing Juice
Insphpect External Passing Juice
Evict Your Darlings: Banish dotfiles from your home directory Internal Passing Juice
v.je - an Easy to set up development environment for Docker Internal Passing Juice
Why are you still using XAMPP? Internal Passing Juice
Setting Up a Modern PHP Development Environment with Docker (published on sitepoint.com) External Passing Juice
It's probably not time ditch CentOS for your server Internal Passing Juice
How to get sendmail working in docker PHP Internal Passing Juice
11 things you may have overlooked when you made your website live Internal Passing Juice
Eliminate Render Blocking CSS using HTTP/2 Push Internal Passing Juice
Forcing a browser CSS cache reload with HTTP/2 Server Push Internal Passing Juice
Immutable MVC in PHP (Part 2) - Immutable CRUD application Internal Passing Juice
Immutable MVC: MVC In PHP 2019 Edition (Part 1) Internal Passing Juice
Guide: Using Let's Encrypt SSL Certificates for local or network server Internal Passing Juice
Routing all traffic through an OpenVPN client on a CentOS 7 NAT Internal Passing Juice
Put the pro in programmer: A guide to writing better code Internal Passing Juice
Inheritance vs Composition: Composition wins by knockout Internal Passing Juice
Immutability vs Encapsulation: Schrödinger's immutability Internal Passing Juice
Git Forked: The decentralised but better connected git ecosystem I'd like to see Internal Passing Juice
Dice - A minimalist Dependency Injection Container for PHP Internal Passing Juice
Transphporm - A new approach for PHP templating Internal Passing Juice
Maphper - A n ORM with an array like API. Internal Passing Juice
CSS3 in Internet Explorer Internal Passing Juice
The View gets its own data from the Model Internal Passing Juice
Maximising View reusability with View Helpers Internal Passing Juice
Hello World Internal Passing Juice
Real world example (part 1) Internal Passing Juice
Deploying MVC on the web Internal Passing Juice
Create a router using Dependency Injection Internal Passing Juice
MVVM, MVC it's all just roman numerals to me Internal Passing Juice
Constructor Injection vs Setter Injection Internal Passing Juice
The "courier" anti-pattern. Internal Passing Juice
Are Static Methods/Variables bad practice? Internal Passing Juice
Encapsulation: Don't Look Up Internal Passing Juice
The $this variable isn't as Object-Oriented as you think it is Internal Passing Juice
Finding creative ways to break encapsulation isn't clever Internal Passing Juice
PHP: Annotations are an abomination Internal Passing Juice
Empty interfaces are bad practice Internal Passing Juice
Stop the sprinf() abuse Internal Passing Juice
Hazard 1: 90% of everything is crap Internal Passing Juice
Hazard 2: I've always done it that way Internal Passing Juice
Hazard 3: COOL! Internal Passing Juice
Hazard 4: You are not clairvoyant Internal Passing Juice
Is programming an art form? Internal Passing Juice
The importance of getting terminology correct Internal Passing Juice
Git Forked: Goodbye GitHub, you'll be briefly missed Internal Passing Juice
11 things you may have overlooked when you made your website live Internal Passing Juice
PHP & MySQL - Novice to Ninja, now available! Internal Passing Juice
4 reasons you should not have logic in your database (cascade delete, foreign key constraints, triggers, etc) Internal Passing Juice
Google Analytics And Fonts Are Probably Costing You In Lost Sales Internal Passing Juice
v.je - a 97mb minimal web development virtual machine Internal Passing Juice
A better solution to coding standards Internal Passing Juice
PHP Autoloaders should not be case sensitive Internal Passing Juice
PHP: PSR-0: Pretty Shortsighted, Really Internal Passing Juice
Find every combination of an array Internal Passing Juice
Why I don't have a comments section Internal Passing Juice
- Internal Passing Juice
NoF5 - Never press reload again! Internal Passing Juice
CSS3 in Internet Explorer (deprecated) Internal Passing Juice
The View gets its own data from the Model Internal Passing Juice
MVC Models are not Domain Models Internal Passing Juice
Immutable MVC: MVC In PHP 2019 Edition (Part 1) Internal Passing Juice
Immutable MVC in PHP (Part 2) - Immutable CRUD application Internal Passing Juice
Hello World Internal Passing Juice
Real world example (part 1) Internal Passing Juice
Deploying MVC on the web Internal Passing Juice
Create a router using Dependency Injection Internal Passing Juice
MVVM, MVC it's all just roman numerals to me Internal Passing Juice
Immutability vs Encapsulation: Schrödinger's immutability Internal Passing Juice
Encapsulation: Don't Look Up Internal Passing Juice
The $this variable isn't as Object-Oriented as you think it is Internal Passing Juice
Finding creative ways to break encapsulation isn't clever Internal Passing Juice
Slutty Software is good software: Tight and loose coupling in OOP Internal Passing Juice
PHP: Annotations are an abomination Internal Passing Juice
Empty interfaces are bad practice Internal Passing Juice
Stop the sprinf() abuse Internal Passing Juice
Constructor Injection vs Setter Injection Internal Passing Juice
Inheritance vs Composition: Composition wins by knockout Internal Passing Juice
The "courier" anti-pattern. Internal Passing Juice
Are Static Methods/Variables bad practice? Internal Passing Juice
A guide to writing better code Internal Passing Juice
Hazard 1: 90% of everything is crap Internal Passing Juice
Hazard 2: I've always done it that way Internal Passing Juice
Hazard 3: COOL! Internal Passing Juice
Hazard 4: You are not clairvoyant Internal Passing Juice
To assert or not assert, that is the question. Internal Passing Juice
4 reasons you should not have logic in your database (cascade delete, foreign key constraints, triggers, etc) Internal Passing Juice
v.je - an Easy to set up development environment for Docker Internal Passing Juice
Why are you still using XAMPP? Internal Passing Juice
Routing all traffic through an OpenVPN client on a CentOS 7 NAT Internal Passing Juice
Guide: Using Let's Encrypt SSL Certificates for local or network server Internal Passing Juice
Is programming an art form? Internal Passing Juice
The importance of getting terminology correct Internal Passing Juice
SoCcam's Razor: Applying the Single Responsibility Principle using a practical approach Internal Passing Juice
PHP & MySQL - Novice to Ninja, now available! Internal Passing Juice
Google Analytics And Fonts Are Probably Costing You In Lost Sales Internal Passing Juice
v.je - A 97mb Minimal web development virtual machine Internal Passing Juice
A better solution to coding standards Internal Passing Juice
PHP Autoloaders should not be case sensitive Internal Passing Juice
PHP: PSR-0: Pretty Shortsighted, Really Internal Passing Juice
Find every combination of an array Internal Passing Juice
Why I don't have a comments section Internal Passing Juice
Split/explode a string in PHP with an escape character Internal Passing Juice
Git Forked: Goodbye GitHub, you'll be briefly missed Internal Passing Juice
Git Forked: The decentralised but better connected git ecosystem I'd like to see Internal Passing Juice
A guide to Transphporm's caching implementation Internal Passing Juice
my Gitter chat External Passing Juice
Publications Internal Passing Juice

SEO Keywords

Keywords Cloud

server using mvc git php hazard programming injection part immutable

Keywords Consistency

Keyword Content Title Keywords Description Headings
php 32
mvc 31
immutable 16
using 14
server 13

Usability

Url

Domain : r.je

Length : 4

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.

Document

Doctype

HTML 5

Encoding

You have not specified the document's charset. Use this free meta tags generator to declare document's charset.

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.
Perfect. No inline css has been found in HTML tags!
Great, your website has few CSS files.
Perfect, your website has few JavaScript files.
Perfect, your website takes advantage of gzip.

Mobile

Mobile Optimization

Apple Icon
Meta Viewport Tag
Flash content

Optimization

XML Sitemap

Great, your website has an XML sitemap.

https://r.je/sitemap.xml

Robots.txt

https://r.je/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.

PageSpeed Insights


Device
Categories

Free SEO Testing Tool

Free SEO Testing Tool is a free SEO tool which provides you content analysis of the website.