Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the astra-addon domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/quirkysi/quirkyold.quirkysite.com/wp-includes/functions.php on line 6170

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the astra-sites domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/quirkysi/quirkyold.quirkysite.com/wp-includes/functions.php on line 6170

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the rank-math domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/quirkysi/quirkyold.quirkysite.com/wp-includes/functions.php on line 6170

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the insert-headers-and-footers domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/quirkysi/quirkyold.quirkysite.com/wp-includes/functions.php on line 6170

Deprecated: ActionScheduler_Store::save_action(): Implicitly marking parameter $scheduled_date as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php on line 29

Deprecated: ActionScheduler_Store::stake_claim(): Implicitly marking parameter $before_date as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php on line 188

Deprecated: ActionScheduler_Store::get_scheduled_date_string(): Implicitly marking parameter $scheduled_date as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php on line 257

Deprecated: ActionScheduler_Store::get_scheduled_date_string_local(): Implicitly marking parameter $scheduled_date as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Store.php on line 274

Deprecated: ActionScheduler_DBStore::save_unique_action(): Implicitly marking parameter $scheduled_date as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php on line 55

Deprecated: ActionScheduler_DBStore::save_action(): Implicitly marking parameter $scheduled_date as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php on line 68

Deprecated: ActionScheduler_DBStore::save_action_to_db(): Implicitly marking parameter $date as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php on line 82

Deprecated: ActionScheduler_DBStore::stake_claim(): Implicitly marking parameter $before_date as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php on line 795

Deprecated: ActionScheduler_DBStore::claim_actions(): Implicitly marking parameter $before_date as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBStore.php on line 860

Deprecated: ActionScheduler_Logger::log(): Implicitly marking parameter $date as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Logger.php on line 28

Deprecated: ActionScheduler_Logger::log_failed_fetch_action(): Implicitly marking parameter $exception as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Logger.php on line 142

Deprecated: ActionScheduler_DBLogger::log(): Implicitly marking parameter $date as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/data-stores/ActionScheduler_DBLogger.php on line 21

Deprecated: ActionScheduler_QueueRunner::__construct(): Implicitly marking parameter $store as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueRunner.php on line 39

Deprecated: ActionScheduler_QueueRunner::__construct(): Implicitly marking parameter $monitor as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueRunner.php on line 39

Deprecated: ActionScheduler_QueueRunner::__construct(): Implicitly marking parameter $cleaner as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueRunner.php on line 39

Deprecated: ActionScheduler_QueueRunner::__construct(): Implicitly marking parameter $async_request as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueRunner.php on line 39

Deprecated: ActionScheduler_Abstract_QueueRunner::__construct(): Implicitly marking parameter $store as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php on line 34

Deprecated: ActionScheduler_Abstract_QueueRunner::__construct(): Implicitly marking parameter $monitor as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php on line 34

Deprecated: ActionScheduler_Abstract_QueueRunner::__construct(): Implicitly marking parameter $cleaner as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/abstracts/ActionScheduler_Abstract_QueueRunner.php on line 34

Deprecated: ActionScheduler_QueueCleaner::__construct(): Implicitly marking parameter $store as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math/vendor/woocommerce/action-scheduler/classes/ActionScheduler_QueueCleaner.php on line 35

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the rank-math-pro domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/quirkysi/quirkyold.quirkysite.com/wp-includes/functions.php on line 6170

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the uael domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/quirkysi/quirkyold.quirkysite.com/wp-includes/functions.php on line 6170

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wpforms-lite domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/quirkysi/quirkyold.quirkysite.com/wp-includes/functions.php on line 6170

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the astra domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/quirkysi/quirkyold.quirkysite.com/wp-includes/functions.php on line 6170

Deprecated: Creation of dynamic property RankMathPro\BBPress::$meta_key is deprecated in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math-pro/includes/modules/bbPress/class-bbpress.php on line 32

Deprecated: Creation of dynamic property RankMathPro\Analytics\Email_Reports::$views_path is deprecated in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math-pro/includes/modules/analytics/class-email-reports.php on line 49

Deprecated: Creation of dynamic property RankMathPro\Analytics\Email_Reports::$assets_url is deprecated in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/seo-by-rank-math-pro/includes/modules/analytics/class-email-reports.php on line 50

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the astra-addon domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/quirkysi/quirkyold.quirkysite.com/wp-includes/functions.php on line 6170

Deprecated: Elementor\Controls_Stack::get_active_controls(): Implicitly marking parameter $controls as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/includes/base/controls-stack.php on line 334

Deprecated: Elementor\Controls_Stack::get_active_controls(): Implicitly marking parameter $settings as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/includes/base/controls-stack.php on line 334

Deprecated: Elementor\Controls_Stack::get_style_controls(): Implicitly marking parameter $controls as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/includes/base/controls-stack.php on line 795

Deprecated: Elementor\Controls_Stack::get_style_controls(): Implicitly marking parameter $settings as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/includes/base/controls-stack.php on line 795

Deprecated: Elementor\Elements_Manager::create_element_instance(): Implicitly marking parameter $element_type as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/includes/managers/elements.php on line 71

Deprecated: Elementor\Element_Base::__construct(): Implicitly marking parameter $args as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/includes/base/element-base.php on line 1498

Deprecated: Elementor\Repeater::__construct(): Implicitly marking parameter $args as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/includes/elements/repeater.php on line 49

Deprecated: Elementor\Core\Utils\Collection::filter(): Implicitly marking parameter $callback as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/core/utils/collection.php on line 43

Deprecated: ElementorPro\Modules\Forms\Submissions\Actions\Save_To_Database::save_action_log(): Implicitly marking parameter $exception as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor-pro/modules/forms/submissions/actions/save-to-database.php on line 143

Deprecated: {closure:ElementorPro\Modules\Forms\Submissions\Actions\Save_To_Database::__construct():177}(): Implicitly marking parameter $exception as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor-pro/modules/forms/submissions/actions/save-to-database.php on line 177

Deprecated: Function WP_Dependencies->add_data() was called with an argument that is deprecated since version 6.9.0! IE conditional comments are ignored by all supported browsers. in /home/quirkysi/quirkyold.quirkysite.com/wp-includes/functions.php on line 6170

Deprecated: Elementor\Core\Files\CSS\Post::add_controls_stack_style_rules(): Implicitly marking parameter $all_controls as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/core/files/css/post.php on line 221

Deprecated: Elementor\Core\Files\CSS\Base::add_controls_stack_style_rules(): Implicitly marking parameter $all_controls as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/core/files/css/base.php on line 549

Deprecated: Elementor\Core\Files\CSS\Base::get_active_controls(): Implicitly marking parameter $controls as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/core/files/css/base.php on line 907

Deprecated: Elementor\Core\Files\CSS\Base::get_active_controls(): Implicitly marking parameter $settings as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/core/files/css/base.php on line 907

Deprecated: Elementor\Core\Files\CSS\Base::get_style_controls(): Implicitly marking parameter $controls as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/core/files/css/base.php on line 935

Deprecated: Elementor\Core\Files\CSS\Base::get_style_controls(): Implicitly marking parameter $settings as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/core/files/css/base.php on line 935

Deprecated: Elementor\Core\DynamicTags\Dynamic_CSS::add_controls_stack_style_rules(): Implicitly marking parameter $all_controls as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/core/dynamic-tags/dynamic-css.php on line 104

Deprecated: Elementor\Stylesheet::add_rules(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/includes/stylesheet.php on line 141
About Our Merseyside Based Digital Marketing Agency | Quirky Digital

Deprecated: Elementor\Includes\Widgets\Traits\Button_Trait::render_button(): Implicitly marking parameter $instance as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/includes/widgets/traits/button-trait.php on line 459

Deprecated: Elementor\Includes\Widgets\Traits\Button_Trait::render_text(): Implicitly marking parameter $instance as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/includes/widgets/traits/button-trait.php on line 567

Deprecated: ElementorPro\Modules\Posts\Traits\Button_Widget_Trait::render_button(): Implicitly marking parameter $instance as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor-pro/modules/posts/traits/button-widget-trait.php on line 411

Deprecated: ElementorPro\Modules\Carousel\Widgets\Media_Carousel::print_slider(): Implicitly marking parameter $settings as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor-pro/modules/carousel/widgets/media-carousel.php on line 269

Deprecated: ElementorPro\Modules\Carousel\Widgets\Base::print_slider(): Implicitly marking parameter $settings as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor-pro/modules/carousel/widgets/base.php on line 544

Deprecated: ElementorPro\Modules\Payments\Widgets\Paypal_Button::render_button(): Implicitly marking parameter $instance as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor-pro/modules/payments/widgets/paypal-button.php on line 220

Deprecated: ElementorPro\Modules\Payments\Classes\Payment_Button::render_button(): Implicitly marking parameter $instance as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor-pro/modules/payments/classes/payment-button.php on line 504

Deprecated: ElementorPro\Modules\Payments\Widgets\Stripe_Button::render_button(): Implicitly marking parameter $instance as nullable is deprecated, the explicit nullable type must be used instead in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor-pro/modules/payments/widgets/stripe-button.php on line 244

Not your average agency

The SEO agency for ambitious brands

Quirky Digital is a team of innovative and award-winning search marketing professionals who are obsessed with pushing the boundaries that other digital marketing agencies have created.

Everybody in the game knows that search engines can be difficult to understand, that’s why we make sure that our clients feel as if we are an integrated part of our team and make sure that our customers understand everything they should expect from a successful SEO campaign.

Our goal is to help ambitious business owners achieve their goals by ranking them at the top of Google – after all, no quality business should have to settle for anything other than a first-page ranking. We promise that you’ll always work directly with an expert, and we will take the time to completely understand your business, listen to your goals and smash your competition.

Always ahead of the curve

Despite the team being based in our Liverpool office, we have dedicated members of our team who actively network with industry counterparts across the world.

Alongside working with successful local, national and international brands, we also have our own portfolio of growing websites that our innovative SEO team use to test new strategies before most other agencies even know what they are.

This is why business owners and marketing managers put their trust in us and let us fix problems that most other agencies struggle to deal with.

Meet the Quirky team

Liam Quirk

Liam Quirk

Managing Director

Emily Griffiths

Emily Griffiths

Content Marketing Manager

Ben Duffy

Ben Duffy

Client Development Manager

Rachel Walton

Rachel Walton

Head of SEO

Lois Robinson

Lois Robinson

Content Executive

Gus Dean-Gately

Gus Dean-Gately

Technical SEO Consultant

Sean Sturgeon

SEO Consultant

Will Gryba

Will Gryba

Digital & Outreach Consultant

Adam Jamieson

Adam Jamieson

Content Marketing Executive

Ella Cassidy

Ella Cassidy

Content Executive

Melissa Sunter

Melissa Sunter

Content Apprentice

Melanie Serrano-Fenney

Digital Marketing Executive

Cheryl Bell

Cheryl Bell

Office Manager

Jack Gleave

Digital Marketing Executive

Freya Oldham

Freya Oldham

Content Creator Apprentice

Our Company Core Values

We are ambitious

Our primary goal is to see your business flourish and expand. We thrive when your business does; if dynamic growth and success aren't in your plan, we might not be the right match for you.

We are loyal

As long as we're working together, your rivals are ours too. We focus exclusively on your needs, avoiding any conflicts of interest in pursuing the same rankings and online visibility as your competitors.

We are direct

Honesty and clarity are key in our communication. We're committed to giving you straightforward, jargon-free insights, ensuring you get the truth rather than just what you might want to hear.

We are innovative

Being at the forefront of SEO is crucial for us. We collaborate with other industry leaders and are always on the lookout for pioneering strategies to keep us – and you – ahead in the SEO world.

Turning SEO doubters into believers

Since the launch of the agency in 2020, we are proud to have become one of Merseyside’s most trusted SEO consultants and are now working with some of the biggest brands across the United Kingdom and beyond.

Our expert team has decades of experience when it comes to ranking websites at the top of Google – and not just locally, but in some of the most competitive international niches.

You can learn more about the brands we work with by visiting our case studies page or alternatively, you can read our reviews across the internet.


Deprecated: Constant E_STRICT is deprecated in /home/quirkysi/quirkyold.quirkysite.com/wp-content/plugins/elementor/core/logger/manager.php on line 250