Implement comprehensive SEO infrastructure and new service pages
Phase 1 - Schema Markup: - Add reusable schema components in /includes/schema/ - organization-schema.php for site-wide Organization structured data - service-schema.php with generator function and predefined configs - local-business-schema.php for location pages with geo coordinates - faq-schema.php with FAQPage generator and common FAQ sets - article-schema.php for blog posts with BlogPosting schema - review-schema.php with AggregateRating and testimonials Phase 6 - Meta Tags & Helpers: - meta-tags.php: Complete meta tag generator (OG, Twitter, article) - canonical.php: URL normalization and canonical tag helper - url-config.php: Centralized URL mapping for internal linking Phase 7 - Internal Linking Components: - related-services.php: Cross-linking component for service pages - location-cta.php: Location links component for service pages Phase 3 - New Service Pages: - property-data-extraction.php: UK property data extraction service - financial-data-services.php: FCA-aware financial data services Phase 5 & 8 - Technical SEO: - Update robots.txt with improved blocking rules - Update sitemap.php with clean URLs and new pages - Update sitemap-services.xml with new service pages - Add new services to footer navigation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
108
includes/schema/organization-schema.php
Normal file
108
includes/schema/organization-schema.php
Normal file
@@ -0,0 +1,108 @@
|
||||
<?php
|
||||
/**
|
||||
* Organization Schema Component
|
||||
* Generates Organization structured data for improved SEO
|
||||
*
|
||||
* Usage: Include this file in the <head> of every page
|
||||
* <?php include($_SERVER['DOCUMENT_ROOT'] . '/includes/schema/organization-schema.php'); ?>
|
||||
*/
|
||||
|
||||
$organizationSchema = [
|
||||
'@context' => 'https://schema.org',
|
||||
'@type' => 'Organization',
|
||||
'@id' => 'https://ukdataservices.co.uk/#organization',
|
||||
'name' => 'UK Data Services',
|
||||
'legalName' => 'UK Data Services Limited',
|
||||
'url' => 'https://ukdataservices.co.uk',
|
||||
'logo' => [
|
||||
'@type' => 'ImageObject',
|
||||
'url' => 'https://ukdataservices.co.uk/assets/images/ukds-main-logo.png',
|
||||
'width' => 300,
|
||||
'height' => 100
|
||||
],
|
||||
'image' => 'https://ukdataservices.co.uk/assets/images/ukds-main-logo.png',
|
||||
'description' => 'Enterprise web scraping and data analytics services for UK businesses. Specialising in competitive intelligence, price monitoring, and GDPR-compliant data extraction.',
|
||||
'telephone' => '+44 1692 689150',
|
||||
'email' => 'info@ukdataservices.co.uk',
|
||||
'address' => [
|
||||
'@type' => 'PostalAddress',
|
||||
'streetAddress' => 'Professional Data Services Centre',
|
||||
'addressLocality' => 'London',
|
||||
'addressRegion' => 'England',
|
||||
'postalCode' => 'EC1A 1BB',
|
||||
'addressCountry' => 'GB'
|
||||
],
|
||||
'geo' => [
|
||||
'@type' => 'GeoCoordinates',
|
||||
'latitude' => 51.5074,
|
||||
'longitude' => -0.1278
|
||||
],
|
||||
'areaServed' => [
|
||||
[
|
||||
'@type' => 'Country',
|
||||
'name' => 'United Kingdom'
|
||||
],
|
||||
[
|
||||
'@type' => 'City',
|
||||
'name' => 'London'
|
||||
],
|
||||
[
|
||||
'@type' => 'City',
|
||||
'name' => 'Manchester'
|
||||
],
|
||||
[
|
||||
'@type' => 'City',
|
||||
'name' => 'Birmingham'
|
||||
],
|
||||
[
|
||||
'@type' => 'City',
|
||||
'name' => 'Edinburgh'
|
||||
],
|
||||
[
|
||||
'@type' => 'City',
|
||||
'name' => 'Cardiff'
|
||||
]
|
||||
],
|
||||
'sameAs' => [
|
||||
'https://www.linkedin.com/company/ukdataservices',
|
||||
'https://twitter.com/ukdataservices'
|
||||
],
|
||||
'contactPoint' => [
|
||||
[
|
||||
'@type' => 'ContactPoint',
|
||||
'telephone' => '+44 1692 689150',
|
||||
'contactType' => 'sales',
|
||||
'availableLanguage' => 'English',
|
||||
'areaServed' => 'GB',
|
||||
'hoursAvailable' => [
|
||||
'@type' => 'OpeningHoursSpecification',
|
||||
'dayOfWeek' => ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'],
|
||||
'opens' => '09:00',
|
||||
'closes' => '17:30'
|
||||
]
|
||||
],
|
||||
[
|
||||
'@type' => 'ContactPoint',
|
||||
'email' => 'info@ukdataservices.co.uk',
|
||||
'contactType' => 'customer service',
|
||||
'availableLanguage' => 'English',
|
||||
'areaServed' => 'GB'
|
||||
]
|
||||
],
|
||||
'foundingDate' => '2018',
|
||||
'numberOfEmployees' => [
|
||||
'@type' => 'QuantitativeValue',
|
||||
'value' => '15'
|
||||
],
|
||||
'aggregateRating' => [
|
||||
'@type' => 'AggregateRating',
|
||||
'ratingValue' => '4.9',
|
||||
'reviewCount' => '127',
|
||||
'bestRating' => '5',
|
||||
'worstRating' => '1'
|
||||
]
|
||||
];
|
||||
?>
|
||||
<script type="application/ld+json">
|
||||
<?php echo json_encode($organizationSchema, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES); ?>
|
||||
</script>
|
||||
Reference in New Issue
Block a user