Criar custom fields WordPress para consultoria SEO em Recife gerenciar conteudo
Aprenda a criar custom fields WordPress para consultoria SEO em Recife gerenciar conteúdo com ACF e metaboxes nativos. Guia prático para desenvolvedores.
Uma consultoria SEO em Recife atende clientes de setores variados — imobiliárias no Boa Viagem, clínicas no Derby, e-commerces no Pina. Cada segmento exige dados estruturados diferentes: imóveis precisam de metragem e quartos; clínicas, de CRM e especialidades; lojas, de SKU e preço. O desafio não é criar campos, mas organizar um sistema que a equipe de conteúdo consiga operar sem suporte técnico constante.
O WordPress nativo oferece title, editor, excerpt e custom fields básicos. Para SEO profissional, isso é insuficiente. Precisamos de campos para schema markup, canonical personalizado, noindex seletivo, FAQ estruturado, breadcrumb customizado e dados de negócio local (NAP). A solução passa por custom fields bem arquitetados, seja via Advanced Custom Fields (ACF) ou metaboxes registrados via código.
Este guia mostra como estruturar, validar e manter custom fields para uma operação SEO escalável. Cobriremos decisão de ferramenta, modelagem de dados, integração com plugins SEO, performance e governança de conteúdo — tudo com foco em desenvolvedores que entregam sites para agências gerenciarem.
Escolha da ferramenta: ACF PRO vs metaboxes nativos
A decisão impacta manutenção, onboarding da equipe e custo de licença. O ACF PRO (249 reais/ano para sites ilimitados) acelera desenvolvimento com interface visual, field groups exportáveis em JSON, blocos Gutenberg nativos e API robusta. Metaboxes nativos exigem PHP puro, mas zeram dependências externas e reduzem superfície de ataque.
Para a consultoria de Recife, o ACF PRO costuma compensar: a equipe de conteúdo já conhece a interface, field groups versionados em JSON entram no Git, e blocos Gutenberg permitem editar schema FAQ direto no editor visual. Se o projeto for interno, sem equipe não-técnica, metaboxes nativos com add_meta_box e save_post são suficientes.
Critério prático: se houver campos repeater, gallery, flexible content ou relationship — use ACF. Se forem apenas text, textarea, select, checkbox, radio — metaboxes nativos resolvem. Muitos projetos híbridos usam ACF para campos complexos e metaboxes leves para flags simples (noindex, nofollow, canonical).
Modelagem de field groups por tipo de conteúdo
Organize field groups espelhando a arquitetura da informação do site. Não crie um grupo monolítico “SEO”. Separe por post type e necessidade:
- Páginas institucionais: schema Organization/LocalBusiness, NAP, horário, redes sociais, logo, imagem de fallback og:image.
- Posts de blog: schema Article/BlogPosting, author bio estendido, FAQ repeater, table of contents toggle, related posts manual.
- Imóveis (CPT): schema Product/RealEstateListing, metragem, quartos, suítes, vagas, condomínio, IPTU, características repeater, galeria.
- Serviços médicos (CPT): schema MedicalBusiness/Service, CRM, especialidades, convênios, telemedicina, agendamento online.
- Produtos (WooCommerce): schema Product/Offer, GTIN, MPN, marca, disponibilidade, preço de oferta, FAQ por produto.
- Opções globais (Options Page ACF): configurações de site: logo, favicon, Google Search Console, Bing Webmaster, redes sociais, scripts de head/body.
Cada grupo usa regras de localização (Location Rules) para aparecer apenas onde faz sentido. Exemplo: grupo “SEO Imóvel” só em post_type = imovel. Grupo “SEO Global” só na Options Page. Isso evita poluição na tela de edição e reduz erros de preenchimento.
Integração com plugins SEO: evitar conflitos de meta tags
Yoast SEO e Rank Math já escrevem title, meta description, canonical, og:, twitter: e schema padrão. Seus custom fields não devem duplicar — devem estender ou sobrescrever seletivamente.
Estratégia recomendada: use filtros dos plugins SEO para injetar valores dos seus custom fields. No Yoast, wpseo_title, wpseo_metadesc, wpseo_canonical, wpseo_opengraph_*. No Rank Math, rank_math/frontend/title, rank_math/frontend/description, rank_math/frontend/canonical.
Exemplo prático: campo seo_canonical_custom no ACF. No functions.php:
add_filter( 'wpseo_canonical', function( $canonical ) {
$custom = get_field( 'seo_canonical_custom' );
return $custom ? esc_url( $custom ) : $canonical;
} );
Para schema markup, o ACF PRO permite criar blocos Gutenberg que geram JSON-LD válido. Alternativamente, use o filtro wpseo_schema_graph (Yoast) ou rank_math/snippet/rich_snippet_*_entity (Rank Math) para injetar dados dos seus campos repeater (FAQ, Breadcrumb, HowTo).
Regra de ouro: nunca desative o schema nativo do plugin SEO. Complemente. Conflitos geram erros no Search Console e Rich Results Test.
Performance: consultas meta_query e cache inteligente
Campos personalizados viram linhas na tabela wp_postmeta. Consultas meta_query em loops (ex: listar imóveis com 3 quartos e condomínio < 2000) são lentas em escala. Soluções:
- Índices customizados: crie tabela auxiliar com colunas indexadas (quartos, valor_condominio) sincronizada via
save_post. Consulte essa tabela via$wpdbem vez demeta_query. - Transients para listagens: cacheie o HTML do loop por 5-15 minutos com
set_transient( 'imoveis_lista_' . $args_hash, $html, 900 ). Invalide nosave_postdo CPT imovel. - ACF
load_fieldcondicional: carregue choices de select/relationship via AJAX só quando o campo for expandido, não no load da página. - Evite
get_field()em loops: useget_post_meta( $post->ID, 'chave', true )direto — evita overhead do ACF.
Para a consultoria de Recife, com ~500 imóveis e 200 posts/mês, transients + invalidação no save_post resolvem 90% dos gargalos. Índices customizados entram quando a listagem passa de 2s no TTFB.
Governança de conteúdo: documentação e versionamento
A equipe de conteúdo da consultoria não é técnica. Eles precisam saber: qual campo preencher, formato esperado, limite de caracteres, impacto no SEO.
Implemente três camadas:
- Instruções no ACF: use “Instructions” em cada campo. Exemplo: “Título SEO (max 60 chars). Aparece no
e og:title. Se vazio, usa título do post.” - Documentação viva no Notion/Confluence: guia com prints, exemplos preenchidos, checklist de publicação. Vincule no menu admin via
add_menu_pageou plugin “Admin Menu Editor”. - Field groups em JSON versionado: ACF > Tools > Export > JSON. Commit no repo. Deploy via CI/CD sincroniza campo groups entre staging/prod. Nunca edite fields direto em produção.
Checklist de publicação para a equipe:
- Título SEO preenchido (50-60 chars)
- Meta description preenchida (150-160 chars)
- Schema FAQ: mínimo 3 perguntas se houver FAQ no conteúdo
- Canonical customizado só se diferente da URL padrão
- Noindex marcado só para páginas de agradecimento, login, busca interna
- og:image definida (1200x630) se diferente da imagem destaque
Validação e sanitização: proteger a integridade dos dados
Campos livres viram vetor de XSS e dados sujos no Search Console. Valide no backend, não só no frontend.
No ACF, use filtro acf/validate_value/name={field_name}:
add_filter( 'acf/validate_value/name=seo_meta_description', function( $valid, $value, $field, $input ) {
if ( mb_strlen( $value ) > 160 ) {
return 'Meta description deve ter no máximo 160 caracteres.';
}
return $valid;
}, 10, 4 );
Em metaboxes nativos, valide no save_post:
add_action( 'save_post_imovel', function( $post_id ) {
if ( ! isset( $_POST['imovel_nonce'] ) || ! wp_verify_nonce( $_POST['imovel_nonce'], 'imovel_save' ) ) return;
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( ! current_user_can( 'edit_post', $post_id ) ) return;
$quartos = isset( $_POST['quartos'] ) ? absint( $_POST['quartos'] ) : 0;
if ( $quartos < 1 || $quartos > 20 ) {
add_settings_error( 'quartos', 'quartos_invalido', 'Quartos deve ser entre 1 e 20.', 'error' );
return;
}
update_post_meta( $post_id, 'quartos', $quartos );
} );
Sanitize sempre: sanitize_text_field, sanitize_url, sanitize_email, wp_kses_post (para HTML permitido), absint (inteiros). Nunca salve $_POST direto.
Fluxo de deploy e sincronização de fields
Field groups do ACF em JSON (pasta acf-json no tema ou plugin) entram no versionamento. No pipeline CI/CD:
composer install(se ACF PRO via Composer/private repo)wp acf import --file=acf-json/*.jsonvia WP-CLI no deploywp cache flushpara limpar transients de field groups- Testes de fumaça: criar post de cada CPT, preencher campos, publicar, verificar frontend
Para metaboxes nativos, o código está no tema/plugin — deploy padrão resolve. Só atente para register_meta com show_in_rest => true se o campo precisar aparecer no endpoint REST (ex: app mobile, headless).
times de gestão de tráfego em Petrópolis
Conclusão prática
Custom fields bem estruturados transformam o WordPress em CMS adequado para SEO empresarial. A consultoria de Recife ganha autonomia: equipe de conteúdo preenche schema, canonical, FAQ e dados locais sem abrir ticket de dev. O desenvolvedor entrega field groups versionados, validação robusta, integração limpa com plugins SEO e performance previsível. Comece modelando os dados por tipo de conteúdo, escolha a ferramenta certa para cada complexidade e documente tudo para quem vai operar no dia a dia.
Checklist prático
Perguntas frequentes
Qual a diferença entre usar ACF e metaboxes nativos do WordPress?
O ACF oferece interface visual e campos complexos como repeater e gallery sem escrever código PHP. Metaboxes nativos exigem programação manual, mas eliminam dependência de plugin externo e são mais leves para projetos simples.
Como garantir que os custom fields não atrapalhem o desempenho do site?
Carregue scripts e estilos do ACF apenas nas telas de edição necessárias usando hooks condicionais. Evite campos repetidores excessivos em posts únicos e use transients para cachear consultas pesadas de meta_value.
É possível migrar dados de custom fields entre instalações WordPress?
Sim, exporte as tabelas postmeta e usermeta via WP-CLI ou plugin de migração. Para ACF, use a ferramenta de importação/exportação de field groups em JSON, que preserva chaves e configurações entre ambientes.
Como validar dados salvos em custom fields antes de publicar?
Use o filtro 'acf/validate_value' para regras personalizadas no ACF. Em metaboxes nativos, aplique 'save_post' com wp_verify_nonce e sanitize_text_field, retornando erro via admin_notices se a validação falhar.
Custom fields funcionam com o editor de blocos Gutenberg?
Sim, o ACF PRO permite criar blocos Gutenberg nativos a partir de field groups. Metaboxes nativos aparecem na sidebar do editor. Para integração profunda, registre blocos via register_block_type com atributos mapeados para meta fields.