SEO report for phpunit.expert
https://phpunit.expert/en.html · checked Wed, 11 Nov 2026 17:13 GMT
Fix these first
- Title tagcritical
“PHPUnit Training and Consulting by Sebastian Bergmann | phpunit.expert”
Fix: Write a unique title of roughly 50–60 characters with the main search phrase first.
- LocalBusiness markuphigh
No LocalBusiness structured data.
Fix: Add LocalBusiness JSON-LD with address or areaServed, telephone, geo, opening hours and url.
- H1 headingcritical
“Changing code becomes routine when the tests show what it actually does.”
Fix: Use one H1 that states the page topic with its main keyword.
- Trust pages (E-E-A-T)medium
No links found to about, contact or privacy pages.
Fix: Link to About, Contact and Privacy pages from every page – they help visitors, Google and AI tools see who stands behind the content.
- Imagesmedium
13 image(s).
Fix: Give every image width and height, lazy-load images below the fold (but not the main image) and serve WebP/AVIF.
- Meta descriptionhigh
173 characters, ~1092px of ~990px.
Fix: Write a 140–155 character description that answers the searcher's question and invites the click.
- Render-blocking resourceshigh
1 blocking script(s) and 2 stylesheet(s) in <head>.
Fix: Add defer to scripts, inline critical CSS and load the rest asynchronously.
- Breadcrumbslow
No BreadcrumbList markup.
Fix: Add BreadcrumbList JSON-LD so Google shows the page's place in your site.
Real-world speed Google PageSpeed
Loading Core Web Vitals from Google… this can take up to 30 seconds.
Authority & backlinks
Looking up which websites link to phpunit.expert…
Indexing & crawling 100%
Can search engines reach, read and index this page?
- ✓
Status codecritical
The page returned HTTP 200.
- ✓
Indexablecritical
No noindex instruction – the page can appear in search.
- ✓
robots.txthigh
robots.txt found.
Googlebot is allowed to crawl this page.
- ✓
XML sitemaphigh
Sitemap found at https://phpunit.expert/sitemap.xml with 381 URLs.
Declared in robots.txt.
This page is listed in it.
Most recent lastmod: 2026-11-11T06:50:00+01:00.
- ✓
Canonical URLhigh
Canonical: https://phpunit.expert/en.html
Points to this page (self-referencing).
- ✓
Redirectshigh
1 redirect before the page loaded.
https://phpunit.expert/ → https://phpunit.expert/en.html
A single redirect to your preferred address is normal; just make sure your own links use the final address.
- ✓
www / non-wwwmedium
www.phpunit.expert isn't in use (HTTP 530).
- ✓
hreflangmedium
3 hreflang link(s).
All language codes are valid.
Search snippet & sharing 46%
How the page looks in Google results and when shared.
- ✗
Title tagcritical
“PHPUnit Training and Consulting by Sebastian Bergmann | phpunit.expert”
About 656px of Google's ~580px desktop width – it will probably be cut off.
Repeated words: phpunit.
Fix: Write a unique title of roughly 50–60 characters with the main search phrase first.
- !
Meta descriptionhigh
173 characters, ~1092px of ~990px.
Long – Google will probably truncate it.
Google sometimes rewrites descriptions to match the search; a good one is still used most often.
Fix: Write a 140–155 character description that answers the searcher's question and invites the click.
- ✓
Faviconlow
Favicon linked (Google shows it next to results).
- ✓
Languagelow
lang="en"
Content quality 83%
Is there enough clear, useful text that matches what the page targets?
- ✓
Word countmedium
1,129 words of main content (inside <main>).
Google has no minimum word count – this is a rough guide to whether the page answers the question in full.
- ✓
Readabilitymedium
Flesch reading ease 70 (plain English), about 12 words per sentence.
- ✓
Topic focushigh
4 of 5 title keywords appear in the main content (missing: expert).
- !
H1 headingcritical
“Changing code becomes routine when the tests show what it actually does.”
The H1 shares no keywords with the title.
Fix: Use one H1 that states the page topic with its main keyword.
- ✓
Heading structuremedium
21 headings for 1129 words.
Levels are in order.
- ✓
Text-to-code ratiolow
15% of the HTML is visible text.
AI search readiness 88%
Can ChatGPT, Claude, Perplexity and Google AI Overviews read, understand and cite this site?
- ✓
AI crawler accesshigh
Search and AI-search crawlers (Googlebot, Bingbot, OAI-SearchBot, Claude-SearchBot, PerplexityBot…) can read this page.
- ✓
Snippet controlshigh
No snippet restrictions – search and AI answers can quote this page.
- ✓
llms.txtlow
/llms.txt found.
- ✓
Question-led contentmedium
3 heading(s) phrased as questions, e.g. “How I help you and your team”.
- ✓
Entity clarityhigh
Identified as: Person.
8 official profile link(s) (sameAs).
- ✓
Freshness signalsmedium
The page shows when it was published or last updated.
- ✗
Trust pages (E-E-A-T)medium
No links found to about, contact or privacy pages.
Fix: Link to About, Contact and Privacy pages from every page – they help visitors, Google and AI tools see who stands behind the content.
Structured data 83%
Machine-readable facts for rich results and AI.
- ✓
JSON-LD present & validhigh
1 JSON-LD block(s): WebSite, Person.
All blocks parse correctly.
- ✓
Required propertiesmedium
Key types include Google's required properties.
Links 100%
Internal linking, anchor text and broken links.
- ✓
Internal linkinghigh
31 internal and 17 external links.
- ✓
Anchor text qualitymedium
No link text points to two different pages.
- ✓
Broken links (sample)high
Checked 12 internal link(s).
No broken links found.
Performance 72%
Speed signals from the HTML and server. Real-user Core Web Vitals load below.
- ✓
Server response (TTFB)high
109 ms until the first response from our checker, including connection setup (Google rates TTFB good under 0.8 s, poor over 1.8 s).
- ✓
HTML sizemedium
48 kB of HTML.
- ✓
Compressionmedium
Compressed with gzip.
- !
Render-blocking resourceshigh
1 blocking script(s) and 2 stylesheet(s) in <head>.
Fix: Add defer to scripts, inline critical CSS and load the rest asynchronously.
- ✓
Scripts & third partiesmedium
2 script tag(s); files loaded from 0 other domain(s).
- ✗
Imagesmedium
13 image(s).
3 without width/height – can cause layout shift (CLS).
6 image(s) after the first three aren't lazy-loaded.
0 use WebP/AVIF or responsive srcset.
Fix: Give every image width and height, lazy-load images below the fold (but not the main image) and serve WebP/AVIF.
- ✗
Cachinglow
No Cache-Control header.
Fix: Set Cache-Control so browsers and CDNs can reuse the page.
- ✓
HTTP/3low
Server advertises HTTP/3 (faster on mobile networks).
Security 100%
Visitor safety signals that browsers and Google check.
- ✓
HTTPScritical
Secure HTTPS with no mixed content.
- ✓
HTTP → HTTPS redirecthigh
http:// redirects to https://.
- ✓
HSTSmedium
HSTS: max-age=31536000; includeSubDomains; preload
- ✓
Security headerslow
Present: CSP, nosniff, Referrer-Policy, clickjacking protection.
- ✓
Server fingerprintlow
No X-Powered-By header (server: cloudflare).
Mobile & accessibility 100%
Usable on phones and by everyone – Google indexes the mobile version.
- ✓
Mobile viewportcritical
viewport: width=device-width, initial-scale=1.0
- ✓
Image alt textmedium
All 13 images have alt text.
- ✓
Link nameslow
Every link has a readable name.
- ✓
Tap-to-contactmedium
One-tap contact: phone and email.
Local SEO 33%
Signals that help you appear in Google Maps and 'near me' searches.
- ✗
LocalBusiness markuphigh
No LocalBusiness structured data.
Fix: Add LocalBusiness JSON-LD with address or areaServed, telephone, geo, opening hours and url.
- ✓
Contact details on pagemedium
A UK phone number is shown.
No postcode found (fine for service-area businesses).
An email link is shown.
- ✗
Map & directionslow
No map or directions link.
Fix: Add a Google Maps directions link so customers can find you.