An explorable guide to mastering the art of on-page optimization for better search engine rankings.
These are the fundamental building blocks of any successful on-page SEO strategy. Click on any card to learn more about its purpose, best practices, and why it's crucial for ranking.
Go beyond the basics with these advanced techniques to give your pages a competitive edge and improve how search engines understand your content.
Use this checklist to audit your pages and ensure you've covered all essential on-page SEO tasks. Your progress is saved as you check items off the list.
Optimization Progress0%
E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) is a concept from Google's quality guidelines that acts as a framework for creating high-quality content.
Experience: Is the content created by someone with demonstrable life experience on the topic?
Expertise: Does the author have expert knowledge in the field?
Authoritativeness: Is your site a recognized go-to source for this topic?
Trustworthiness: Is your site secure (HTTPS), your information accurate, and your authors credible?
`
}
};
let checklistState = [
{ id: 'c1', text: 'Content is original, valuable, and readable', checked: false },
{ id: 'c2', text: 'One clear primary keyword is targeted', checked: false },
{ id: 'c3', text: 'Keyword is in title, URL, H1, and intro', checked: false },
{ id: 'c4', text: 'Title Tag is 50-65 characters and compelling', checked: false },
{ id: 'c5', text: 'Meta Description is 150-160 characters', checked: false },
{ id: 'c6', text: 'Content has one H1 and is structured with H2s/H3s', checked: false },
{ id: 'c7', text: 'URL is short, clean, and keyword-rich', checked: false },
{ id: 'c8', text: 'Images have descriptive alt text and are compressed', checked: false },
{ id: 'c9', text: 'Includes 2-3 relevant internal links', checked: false },
{ id: 'c10', text: 'Page loads in under 3 seconds', checked: false },
{ id: 'c11', text: 'Page is mobile-friendly and responsive', checked: false }
];
document.addEventListener('DOMContentLoaded', () => {
const tabs = {
core: document.getElementById('tab-core'),
advanced: document.getElementById('tab-advanced'),
checklist: document.getElementById('tab-checklist')
};
const contents = {
core: document.getElementById('content-core'),
advanced: document.getElementById('content-advanced'),
checklist: document.getElementById('content-checklist')
};
const coreGrid = document.getElementById('core-concepts-grid');
const advancedGrid = document.getElementById('advanced-concepts-grid');
const checklistContainer = document.getElementById('checklist-container');
const modalOverlay = document.getElementById('modal-overlay');
const modalContent = document.getElementById('modal-content');
const modalTitle = document.getElementById('modal-title');
const modalBody = document.getElementById('modal-body');
const modalCloseBtn = document.getElementById('modal-close-btn');
function loadState() {
const savedState = localStorage.getItem('seoChecklistState');
if (savedState) {
checklistState = JSON.parse(savedState);
}
}
function saveState() {
localStorage.setItem('seoChecklistState', JSON.stringify(checklistState));
}
function createConceptCard(key, data) {
return `