Technical SEO Checklist: 12 Factors That Actually Move Rankings (2026)
Most SEO checklists are bloated with irrelevant items. Here are the 12 technical factors that have a direct, measurable impact on organic rankings – and exactly how to implement each on a custom PHP site. If you master these, you’ll solve 90% of technical SEO issues.
1. Crawlability – robots.txt Done Right
Your robots.txt tells search engines which URLs to crawl and which to ignore. Misconfigured, it can block entire sections of your site. Correctly configured, it saves crawl budget for your important pages.
Best‑practice robots.txt for a PHP site:
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /temp/
Sitemap: https://built2winweb.com/sitemap.xml
Key rules:
- Block parameter‑based URLs (
?sort=,?filter=) to prevent duplicate content. - Block admin areas (
/admin/) – they waste crawl budget. - Always include the
Sitemapdirective.
Test: Use Google Search Console’s “robots.txt Tester”.
2. XML Sitemap – Dynamic, Always Up‑to‑Date
A static sitemap goes stale. Generate a dynamic sitemap.php that queries your database and outputs XML. Then rewrite /sitemap.xml to this script.
Dynamic sitemap example:
<?php
header('Content-Type: application/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
$urls = getAllSiteUrls(); // your function
foreach ($urls as $url) {
echo '<url>
<loc>' . htmlspecialchars($url['loc']) . '</loc>
<lastmod>' . $url['lastmod'] . '</lastmod>
<changefreq>weekly</changefreq>
<priority>' . $url['priority'] . '</priority>
</url>';
}
echo '</urlset>';
?>
Add to .htaccess: RewriteRule ^sitemap\.xml$ sitemap.php [L]
Submit the sitemap via Google Search Console → Sitemaps.
3. Canonical Tags – Eliminate Duplicate Content
Canonical tags tell Google which version of a page is the master. Use them on paginated pages, filtered product lists, and any URL that can be reached via multiple paths.
Implementation in PHP:
<link rel="canonical" href="https://= $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>">
For paginated series (e.g., blog page 2), point to the main page:
if ($page > 1) {
echo '<link rel="canonical" href="https://example.com/blog/">';
}
4. Structured Data – JSON‑LD at Minimum
At a minimum, implement:
- Organization on homepage (includes logo, social profiles).
- LocalBusiness on contact page (address, phone, hours).
- Article on blog posts (author, datePublished, headline).
Use the Rich Results Test to validate. See our full schema guide for code examples.
5. Mobile‑First Design – Beyond “Responsive”
Google indexes the mobile version of your site first. A responsive design is table stakes, but also ensure:
<meta name="viewport" content="width=device-width, initial-scale=1">- Tap targets (buttons, links) are at least 44x44px.
- No horizontal scroll (test with Chrome DevTools → Device Toolbar → any iPhone).
- Font sizes at least 16px to avoid automatic zoom.
Test: Google’s Mobile‑Friendly Test tool.
6. HTTPS + Security Headers – Trust & Rankings
HTTPS is a lightweight ranking signal and essential for trust. Force HTTPS via .htaccess:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Add these security headers to .htaccess:
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Content-Type-Options "nosniff"
7. Core Web Vitals – LCP, INP, CLS
Google’s page experience signals are ranking factors. Achieve “good” status:
- LCP (Largest Contentful Paint) < 2.5s – Preload hero image, inline critical CSS, use a CDN.
- INP (Interaction to Next Paint) < 200ms – Break up long JavaScript tasks, defer third‑party scripts.
- CLS (Cumulative Layout Shift) < 0.1 – Add explicit width/height to all images, use `font-display: swap`.
Monitor via Google Search Console → Core Web Vitals report.
8. Internal Linking Structure – Pass Authority Deep
Internal links distribute link equity across your site. Every page should be reachable within 3 clicks from the homepage.
Best practices:
- Use descriptive anchor text (e.g., “custom PHP ecommerce development” instead of “click here”).
- Link from high‑authority pages (homepage, main service pages) to deeper content.
- Add a “related posts” section on blog articles.
- Include contextual links within body copy, not just navigation.
Audit: Use Screaming Frog → Internal tab to see orphan pages (pages with zero internal links).
9. No Broken Links (404s) – Crawl Budget Wasters
Every 404 error wastes crawl budget and frustrates users. Conduct a monthly audit:
- Crawl your site with Screaming Frog (free up to 500 URLs).
- Filter by “Client Error (4xx)”.
- For each broken link, either fix the URL or implement a 301 redirect to a relevant page.
Also monitor Google Search Console → Coverage → Errors.
10. Pagination – Use rel="prev" and rel="next"
For paginated series (e.g., blog pages 1,2,3), add these link tags to consolidate indexing.
<link rel="prev" href="https://example.com/blog/page/2/">
<link rel="next" href="https://example.com/blog/page/4/">
This tells Google that pages 2,3,4 are part of a series – preventing duplicate content issues and consolidating link equity to the main page.
11. Hreflang for Multi‑Language / Multi‑Region Sites
If you target different countries or languages, use hreflang annotations to avoid duplicate content in international search results.
<link rel="alternate" hreflang="en-us" href="https://built2winweb.com/">
<link rel="alternate" hreflang="en-gb" href="https://built2winweb.com/uk/">
<link rel="alternate" hreflang="x-default" href="https://built2winweb.com/">
Implement in your PHP <head> dynamically based on the page’s language/region.
12. Log File Analysis – Understand Googlebot Behavior
Your server logs show exactly which URLs Googlebot crawls, how often, and which return errors. This is the most underused technical SEO tool.
How to analyze logs (command line):
# Extract Googlebot visits
grep "Googlebot" /var/log/apache2/access.log
# Count hits per URL
grep "Googlebot" access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -20
Look for:
- Wasted crawl budget on low‑value pages (e.g., parameter URLs, admin pages). Block them in robots.txt.
- 404 errors – fix redirects.
- Pages that are never crawled – ensure they are linked internally and in the sitemap.
Putting It All Together – A PHP Site Audit Script
You can create a simple PHP script to check some of these factors automatically:
<?php
// quick technical SEO check
$issues = [];
if (empty($_SERVER['HTTPS'])) $issues[] = 'HTTPS not forced';
$homepage = file_get_contents('https://built2winweb.com/');
if (!str_contains($homepage, 'rel="canonical"')) $issues[] = 'Canonical missing on homepage';
if (!str_contains($homepage, 'application/ld+json')) $issues[] = 'Structured data missing';
// ... more checks
if (empty($issues)) echo '✅ All technical checks passed!';
else echo '⚠️ Issues found: ' . implode(', ', $issues);
?>
Case Study: How Fixing These 12 Factors Boosted Traffic by 67%
A B2B software company had a custom PHP site but neglected technical SEO. Their issues:
- No XML sitemap, so Google missed 40% of pages.
- Duplicate content from `?sort=` parameters.
- Canonical tags missing on paginated blog pages.
- No JSON‑LD – zero rich snippets.
- CLS of 0.27 on mobile due to un‑sized images.
Actions taken:
- Implemented dynamic sitemap and submitted to GSC.
- Added robots.txt to block parameter URLs.
- Added canonical tags sitewide.
- Added LocalBusiness and Article schema.
- Set explicit width/height on images and inlined critical CSS.
Results after 90 days:
- Indexed pages increased from 340 → 1,200 (sitemap + crawlability).
- Organic traffic increased by 67%.
- Click‑through rate on branded SERPs increased by 22% (due to schema).
- Core Web Vitals passed on mobile – previously poor.
No additional content or backlinks – purely technical fixes.
Technical SEO Audit – Ready to Improve Your Site?
I perform comprehensive technical SEO audits on custom PHP sites. I’ll identify issues with crawlability, indexation, structured data, Core Web Vitals, and log file analysis – then fix them.
Get a free, no‑obligation technical SEO assessment for your site.
Data from real client projects. Individual results may vary based on site size and existing issues.