Commit Graph

1963 Commits

Author SHA1 Message Date
2bebb46f02 auto-claude: 4.1 - Create scripts/seo_audit.py with SEOAuditor class
Implements SEOAuditor class following social_media_audit.py pattern:
- __init__: Initialize database connection and analysis components
- get_companies: Fetch companies by ID, batch, or all
- audit_company: Full SEO audit (PageSpeed, on-page, technical)
- save_audit_result: Upsert to company_website_analysis table
- run_audit: Orchestration with progress logging and summary

Features:
- Integrates GooglePageSpeedClient for Lighthouse scores
- Uses OnPageSEOAnalyzer for meta tags, headings, images, links
- Uses TechnicalSEOChecker for robots.txt, sitemap, canonical
- Calculates overall SEO score from weighted components
- CLI support: --company-id, --batch, --all, --dry-run, --json

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 02:16:36 +01:00
81fc27dfa9 auto-claude: 3.2 - Add TechnicalSEOChecker class to scripts/seo_analyzer.py
Adds TechnicalSEOChecker class that performs technical SEO audits:
- robots.txt: checks existence, parses directives (Disallow, Allow, Sitemap)
  detects if blocks Googlebot or all bots
- sitemap.xml: checks existence, validates XML, counts URLs, detects sitemap index
- Canonical URLs: detects canonical tag, checks if self-referencing or cross-domain
- Noindex tags: checks meta robots and X-Robots-Tag HTTP header
- Redirect chains: follows up to 10 redirects, detects loops, HTTPS upgrades,
  www redirects, and mixed content issues

Includes:
- 8 dataclasses for structured results (RobotsTxtResult, SitemapResult, etc.)
- TechnicalSEOResult container for complete analysis
- check_technical_seo() convenience function
- CLI support: --technical/-t flag for technical-only analysis
- --all/-a flag for combined on-page and technical analysis
- --json/-j flag for JSON output

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 02:12:47 +01:00
0c257f5e48 auto-claude: 3.1 - Create scripts/seo_analyzer.py with OnPageSEOAnalyzer
Add comprehensive on-page SEO analyzer that extracts:
- Meta tags (title, description, keywords, robots, viewport, canonical)
- Open Graph metadata (og:title, og:description, og:image, etc.)
- Twitter Card metadata (card type, site, creator, etc.)
- Heading structure (h1-h6 counts, hierarchy validation)
- Image alt text analysis (missing, empty, quality issues)
- Link analysis (internal/external/nofollow/broken)
- Structured data detection (JSON-LD, Microdata, RDFa)
- Word count and document attributes (DOCTYPE, lang)

Uses dataclasses for structured results following pagespeed_client.py pattern.
Includes CLI interface for testing individual URLs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 02:07:10 +01:00
623ac284bf auto-claude: 2.2 - Document GOOGLE_PAGESPEED_API_KEY env variable
Add PageSpeed Insights API key configuration to .env.example with:
- Environment variable name: GOOGLE_PAGESPEED_API_KEY
- Link to API key setup documentation
- Note about free tier limits (25k requests/day)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 02:02:12 +01:00
9f58e3f8e1 auto-claude: 2.1 - Create scripts/pagespeed_client.py with GooglePageSpeedClient
Implements Google PageSpeed Insights API client with:
- GooglePageSpeedClient class for making API calls
- Exponential backoff retry logic (3 retries, 1-60s backoff)
- RateLimiter class with daily quota tracking (25k req/day)
- Quota persistence to .pagespeed_quota.json
- Support for mobile/desktop strategies
- Core Web Vitals extraction (LCP, FCP, CLS, TTFB)
- Lighthouse audit scores (performance, accessibility, SEO, best-practices)
- Structured dataclasses for results (PageSpeedResult, PageSpeedScore, CoreWebVitals)
- Custom exceptions (QuotaExceededError, RateLimitError, PageSpeedAPIError)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 02:00:37 +01:00
5ef2752e1a auto-claude: 1.3 - Extend CompanyWebsiteAnalysis model with SEO columns
Added 42 new columns to CompanyWebsiteAnalysis model:

PageSpeed Insights (5 columns):
- pagespeed_seo_score, pagespeed_performance_score
- pagespeed_accessibility_score, pagespeed_best_practices_score
- pagespeed_audits (JSONB)

On-Page SEO Details (18 columns):
- meta_title, meta_description, meta_keywords
- h1_count, h2_count, h3_count, h1_text
- total_images, images_without_alt, images_with_alt
- internal_links_count, external_links_count, broken_links_count
- has_structured_data, structured_data_types, structured_data_json

Technical SEO (13 columns):
- has_canonical, canonical_url, is_indexable, noindex_reason
- viewport_configured, largest_contentful_paint_ms
- first_input_delay_ms, cumulative_layout_shift
- has_og_tags, og_title, og_description, og_image, has_twitter_cards
- html_lang, has_hreflang

SEO Audit Metadata (6 columns):
- seo_audit_version, seo_audited_at, seo_audit_errors
- seo_overall_score, seo_health_score, seo_issues

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 01:56:44 +01:00
8f5bb9a47c auto-claude: 1.2 - Create database/migrations/004_seo_metrics.sql
Add SQL migration for SEO quality assessment metrics:
- PageSpeed Insights scores (seo, performance, accessibility, best_practices)
- PageSpeed audits JSONB column for detailed results
- On-page SEO: headings (h1/h2/h3), images with/without alt, links
- Structured data detection (JSON-LD, Microdata, RDFa)
- Technical SEO: canonical URLs, indexability, Core Web Vitals
- Open Graph & Twitter Cards meta tags
- SEO audit metadata (version, timestamp, errors, scores)
- Created v_company_seo_overview view for admin dashboard
- Added indexes for SEO-related queries

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 01:54:32 +01:00
4b2a68af74 auto-claude: 1.1 - Add beautifulsoup4, lxml, python-whois for on-page SEO analysis
Add SEO analysis dependencies to requirements.txt:
- beautifulsoup4==4.12.3: HTML parsing for SEO metrics extraction
- lxml==5.1.0: Fast XML/HTML parser backend for BeautifulSoup
- python-whois==0.9.4: Domain information lookup

These replace seokar/pyseoanalyzer due to compatibility issues.
2026-01-08 01:52:26 +01:00
055d9c1cfa Add company logos, migration and docs
- Add 80+ company logo images (webp/svg)
- Add membership_fees migration SQL
- Add incident report doc
- Update .gitignore for worktrees

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 22:31:17 +01:00
d4911fd82c Merge branch 'auto-claude/003-artur-bedzie-posiadal-pelne-prawa-administratora-p' 2026-01-06 22:23:41 +01:00
6d589407be Sync local repo with production state
- Add MembershipFee and MembershipFeeConfig models
- Add /health endpoint for monitoring
- Add Microsoft Fluent Design CSS
- Update templates with new CSS structure
- Add Announcement model
- Update .gitignore to exclude analysis files

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 22:23:28 +01:00
0e9d912a1b auto-claude: subtask-1-1 - Grant admin rights to Artur Wiertel (WATERM)
Created migration script grant_admin_artur_wiertel.py that:
- Finds user by company_id=12 (WATERM)
- Sets is_admin=True for the user
- Supports --dry-run mode for verification
- Includes error handling and rollback

To deploy: Run script on production server with www-data user.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 21:58:33 +01:00
02fc67bf40 Initial commit 2026-01-01 14:01:49 +01:00