Payment protectionDetails
- Revisions within the package are free.
- If you do not respond within 3 days of delivery, the work is accepted automatically.
The money is reserved when you pay and released only once you accept the work.

Example result
SEO audit: website of a regional plumbing company
Summary
| Area | Score | Main issue |
|---|---|---|
| Indexing and crawling | Needs work | 38 blog tags pages indexed, thin content |
| Technical health | Fair | Mobile load time 4.8 s on service pages |
| On-page | Needs work | 11 of 18 service pages share near-identical titles |
| Local signals | Weak | Town pages are copies with the town name swapped |
| Content | Fair | Blog traffic is high, but posts do not link to services |
Findings (excerpt)
1. Duplicate and weak titles (high priority)
11 service pages use the pattern "Plumbing Services | Northgate". Searchers and search engines cannot tell "boiler repair" from "drain unblocking".
| Page | Current title | Suggested title |
|---|---|---|
| /boiler-repair | Plumbing Services, Northgate | Boiler Repair in [City], Same-Day Callout, Northgate |
| /blocked-drains | Plumbing Services, Northgate | Blocked Drains Cleared in [City] from £89, Northgate |
2. Town pages are near duplicates (high priority)
The 7 town pages are 94% identical text. Each needs at least 250 words unique to that town: areas covered, typical jobs there, travel time, a local customer review.
3. Slow service pages on mobile (medium)
Hero images average 1.9 MB. Compressing to WebP and setting width to 1,200 px would bring load time to about 2.5 s.
4. Blog does not pass value to services (medium)
The top 10 posts get 62% of organic visits, but only 2 of them link to a service page. "Why is my boiler losing pressure?" alone gets about 1,100 visits a month and links nowhere.
5. Tag pages indexed (low)
38 /tag/ pages with 1–3 posts each. Set them to noindex.
Prioritised action plan
| # | Action | Effort | Impact | Who |
|---|---|---|---|---|
| 1 | Rewrite titles and meta descriptions for 18 service pages | 1 day | High | Content |
| 2 | Write unique content for 7 town pages | 3–4 days | High | Content |
| 3 | Add service links to the top 10 blog posts | 2 hours | Medium | Content |
| 4 | Compress hero images | 2 hours | Medium | Developer |
| 5 | Noindex tag pages, update sitemap | 1 hour | Low | Developer |
Re-check: crawl again 6 weeks after items 1–3 are live and compare impressions for "[service] + [town]" queries.
Client: Northgate Plumbing & Heating, 11 engineers, serving one city and 6 nearby towns Site: 214 pages: home, 18 service pages, 7 town pages, 160 blog posts, contact and legal pages Goal: more calls from local searches such as "boiler repair [town]"
The client and all details are made up.
About this service
Event markup lets concerts, workshops, classes and conferences appear in Google's event listings with date, place and ticket link, but it is strict: every date needs its own event, online and hybrid events need the right attendance mode, and cancelled or moved events must be marked as such rather than deleted. Venues and organisers with recurring classes often get this wrong. We write Event JSON-LD for your events from your schedule, with location or online link, organiser, performer, offers and status.
What is included
- What you getEvent JSON-LD for each event date with location or online details, organiser, performer, tickets and status, plus a short guide for marking cancelled, postponed and recurring events.
- One event per dateSeries and recurring classes split right
- Place or onlineVenue, virtual or mixed attendance
- TicketsPrice, currency, sale dates and link
- Status changesCancelled, postponed and moved online
How it works
- 1ScheduleYou paste events or page links
- 2MarkupWe write Event JSON-LD
- 3PublishYou add it to the event pages
What we need from you
Your event list pasted as text (name, dates and times with time zone, venue address or online link, ticket prices and links, performers), or links to the event pages.
We will ask you:
- What kind of events do you run?
- Paste the events with dates, times and time zone
- Are tickets sold on your site or through a ticketing service?
Compare packages
| Packages | BasicUp to 5 dates$10 | StandardUp to 15 dates$20 | PremiumUp to 40 dates$39 |
|---|---|---|---|
| Deadline | 1 day | 2 days | 4 days |
| Revisions | 1 | 2 | 2 |
| Event dates | up to 5 | up to 15 | up to 40 |
| Status change guide | Yes | Yes | Yes |
| Recurring event setup | No | Yes | Yes |
| Order Basic | Order Standard | Order Premium |
Payment protection
You pay when you order, but the money is released only for accepted work.
- Fixed priceThe package price does not change after you pay.
- The money is reservedWhen you pay, the amount is only reserved. It is released to the service once you accept the work.
- Checked before deliveryEvery result goes through a quality check before it reaches you, and you see it on the order page before accepting it.
- Free revisionsAsk for changes within your brief as many times as the package allows.
- Acceptance after 3 daysIf within 3 days of delivery you neither accept the work nor ask for changes, it is accepted automatically. If you write in the order chat after delivery, the order waits; once we answer, we may start the 3 days again and will say so in the chat.
- Redo or a full refundIf the result does not match your brief and the revisions did not fix it, or the work takes more than twice its deadline, write in the order chat: we will redo the work or refund the payment in full.
Questions and answers
My events are listed on Eventbrite. Do I need this?
Ticketing platforms mark up their own pages. This is for event pages on your own site, so they can appear with your details.
Can I mark up a weekly class once?
No. Each upcoming date should be its own event. We mark up the next dates and show how to keep the list rolling.
Will my events show in Google's event listings?
Correct markup makes them eligible, but Google decides what to show and when.