run_seo_audit
Analyze the current webpage for SEO performance issues using browser automation on ARM64 devices like Raspberry Pi. Identify improvements for better search engine visibility.
Instructions
Run an SEO audit on the current page
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- index.js:906-946 (handler)The core handler function that executes the SEO audit. It ensures Chromium is running, evaluates a JavaScript expression on the page to check for common SEO issues (title, meta description, H1 tags, canonical link), parses the results, and returns them as text.async runSEOAudit() { await this.ensureChromium(); const result = await this.sendCDPCommand('Runtime.evaluate', { expression: ` const results = []; const title = document.querySelector('title'); if (!title || title.textContent.trim().length === 0) { results.push('Missing or empty title tag'); } else if (title.textContent.length > 60) { results.push('Title tag is too long (>60 characters)'); } const metaDesc = document.querySelector('meta[name="description"]'); if (!metaDesc || metaDesc.getAttribute('content').trim().length === 0) { results.push('Missing or empty meta description'); } const h1Tags = document.querySelectorAll('h1'); if (h1Tags.length === 0) { results.push('No H1 tag found'); } else if (h1Tags.length > 1) { results.push('Multiple H1 tags found'); } const canonical = document.querySelector('link[rel="canonical"]'); if (!canonical) { results.push('Missing canonical link'); } JSON.stringify(results.length > 0 ? results : ['Basic SEO checks passed']); `, returnByValue: true }); const seoResults = JSON.parse(result.result?.value || '[]'); return { content: [{ type: 'text', text: `SEO Audit Results:\\n${seoResults.join('\\n')}` }], }; }
- index.js:295-302 (registration)The tool registration entry in the tools array, including name, description, and input schema (empty object).{ name: 'run_seo_audit', description: 'Run an SEO audit on the current page', inputSchema: { type: 'object', properties: {}, }, },
- index.js:298-301 (schema)The input schema for the run_seo_audit tool, which is an empty object indicating no required input parameters.inputSchema: { type: 'object', properties: {}, },
- index.js:383-384 (registration)The switch case in the CallToolRequestHandler that dispatches calls to 'run_seo_audit' to the runSEOAudit method.case 'run_seo_audit': return await this.runSEOAudit();