Skip to main content

seo-best-practices

On-page SEO, technical SEO, keyword research, and content optimization for political transparency platforms

Datos de origen

Repositorio
Hack23/riksdagsmonitor
Última actividad en el origen
16 de abril de 2026 a las 09:31
Idioma detectado de SKILL.md
inglés
Estrellas
12
Forks
4

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
seo-best-practices
description
On-page SEO, technical SEO, keyword research, and content optimization for political transparency platforms
license
Apache-2.0
# SEO Best Practices ## 🔴 AI FIRST Quality Principle > **Apply the AI FIRST principle: never accept first-pass quality. Minimum 2 iterations. Read all output, improve every section. No shortcuts.** ## Purpose This skill provides guidance for search engine optimization (SEO) of the Riksdagsmonitor platform, ensuring political transparency content ranks well in search results while maintaining accessibility, performance, and GDPR compliance. ## When to Use ### ✅ Use this skill when: - Optimizing content for search engines - Improving site structure and navigation - Implementing schema markup - Analyzing keyword opportunities - Improving page load performance - Creating content strategy - Building backlink strategies - Conducting technical SEO audits ### ❌ Don't use this skill for: - Social media marketing (use social-media-management) - Content creation (use content-marketing-strategies) - UI design (use vaadin-component-design) - Security (use secure-code-review) ## Patterns & Examples ### On-Page SEO Checklist ```html <!DOCTYPE html> <html lang="sv"> <head> <!-- Title tag (50-60 characters) --> <title>Politiker Riskanalys - Riksdagsmonitor</title> <!-- Meta description (150-160 characters) --> <meta name="description" content="Analysera svenska politikers riskpoäng, röstningsbeteende och finansiella kopplingar. Oberoende politisk transparens och OSINT-analys."> <!-- Canonical URL --> <link rel="canonical" href="https://www.hack23.com/cia/politician/risk-analysis"> <!-- Open Graph for social sharing --> <meta property="og:title" content="Politiker Risk analys"> <meta property="og:description" content="Oberoende analys av svenska politiker"> <meta property="og:image" content="https://www.hack23.com/cia/images/risk-dashboard.png"> <meta property="og:url" content="https://www.hack23.com/cia/politician/risk-analysis"> <meta property="og:type" content="website"> <!-- Schema.org structured data --> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebApplication", "name": "Riksdagsmonitor", "description": "Political transparency platform for Swedish democracy", "url": "https://www.hack23.com/cia/", "applicationCategory": "Political Analysis", "operatingSystem": "Web", "offers": { "@type": "Offer", "price": "0", "priceCurrency": "EUR" } } </script> </head> <body> <!-- Header with proper hierarchy --> <header> <h1>Politiker Risk analys</h1> </header> <main> <!-- Content with semantic HTML --> <article> <h2>Vad är riskpoäng?</h2> <p>Riskpoäng är en kvantitativ bedömning...</p> </article> </main> </body> </html> ``` ### Keyword Research Strategy ```markdown ## Target Keywords for CIA Platform ### Primary Keywords (High volume, high intent): - "svenska politiker" (Swedish politicians) - 8,100/month - "riksdagen ledamöter" (parliament members) - 2,400/month - "politisk transparens" (political transparency) - 880/month - "politiker röstning" (politician voting) - 720/month ### Long-tail Keywords (Lower volume, high intent): - "politiker riskbedömning" (politician risk assessment) - 90/month - "finansiella kopplingar politiker" (financial connections politicians) - 50/month - "riksdagen omröstningar" (parliament votes) - 320/month - "politikers bisysslor" (politicians' side jobs) - 140/month ### Informational Keywords: - "hur fungerar riksdagen" (how parliament works) - 1,600/month - "vad gör en riksdagsledamot" (what does an MP do) - 880/month - "svensk politik för dummies" (Swedish politics for dummies) - 260/month ## Content Strategy: 1. Create pillar pages for primary keywords 2. Build topic clusters around each pillar 3. Internal linking between related content 4. Regular updates (freshness signal) 5. Answer boxes optimization (featured snippets) ``` ### Technical SEO Requirements ```xml <!-- sitemap.xml --> <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://www.hack23.com/cia/</loc> <lastmod>2026-02-06</lastmod> <changefreq>daily</changefreq> <priority>1.0</priority> </url> <url> <loc>https://www.hack23.com/cia/politician/list</loc> <lastmod>2026-02-06</lastmod> <changefreq>daily</changefreq> <priority>0.9</priority> </url> <!-- More URLs --> </urlset> ``` ```text # robots.txt User-agent: * Allow: / Disallow: /admin/ Disallow: /api/ Disallow: /*?* # No query string URLs Sitemap: https://www.hack23.com/cia/sitemap.xml ``` ### Performance Optimization for SEO ```java // Vaadin - Code splitting and lazy loading @Route(value = "politician", layout = MainLayout.class) @PreserveOnRefresh public class PoliticianView extends VerticalLayout implements HasUrlParameter<String> { @Override public void setParameter(BeforeEvent event, @OptionalParameter String parameter) { // Lazy load heavy components if (parameter != null) { addAttachListener(e -> loadPoliticianDetails(parameter)); } } private void loadPoliticianDetails(String id) { // Load asynchronously to improve initial page load UI.getCurrent().access(() -> { Politician politician = politicianService.findById(id); add(createPoliticianProfile(politician)); }); } } ``` ### Core Web Vitals Targets ```markdown ## Performance Metrics (Google PageSpeed Insights) ### Largest Contentful Paint (LCP) - Target: < 2.5 seconds - Current: 2.1 seconds ✅ - Optimization: CDN, image optimization, code splitting ### First Input Delay (FID) - Target: < 100 milliseconds - Current: 45 milliseconds ✅ - Optimization: Minimize JavaScript execution ### Cumulative Layout Shift (CLS) - Target: < 0.1 - Current: 0.05 ✅ - Optimization: Size attributes on images, reserve space for dynamic content ### First Contentful Paint (FCP) - Target: < 1.8 seconds - Current: 1.2 seconds ✅ ### Time to Interactive (TTI) - Target: < 3.8 seconds - Current: 3.1 seconds ✅ ``` ## ISMS Compliance Mapping ### ISO 27001:2022 Annex A Controls **A.5.37 - Documented operating procedures** - Document SEO processes and standards - Maintain content guidelines ### GDPR Considerations **Article 5 - Principles** - Data minimization in meta tags - No personal data in URLs - Privacy-friendly analytics (no tracking without consent) **Article 13 - Information to be provided** - Clear information about data collection in privacy policy - Cookie consent for analytics ## Hack23 ISMS Policy References - [Information Security Policy](https://github.com/Hack23/ISMS-PUBLIC/blob/main/Information_Security_Policy.md) - Privacy in SEO practices ## References ### SEO Resources - [Google Search Central](https://developers.google.com/search) - [Moz SEO Learning Center](https://moz.com/learn/seo) - [Ahrefs Blog](https://ahrefs.com/blog/) ### Tools - Google Search Console - Google PageSpeed Insights - Screaming Frog SEO Spider ## Remember - **Content is king**: Quality content ranks well - **Mobile-first**: Optimize for mobile devices - **Page speed matters**: Core Web Vitals are ranking factors - **Privacy compliance**: GDPR-friendly analytics only - **Political neutrality**: SEO content maintains platform neutrality - **Structured data**: Schema.org markup for rich results
Ver en GitHub