diff --git a/.golangci.yml b/.golangci.yml
index 2adab9eeb..0d2b54053 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -13,16 +13,96 @@ linters-settings:
     exclude: .errcheck.txt
 linters:
   enable:
-  - deadcode
+  - bodyclose
+  - containedctx
+  - decorder
+  - depguard
+  - dogsled
+  - dupword
   - errcheck
+  - errchkjson
+  - errname
+  - errorlint
+  - exhaustive
+  - goconst
+  - gocritic
   - gofmt
   - goimports
   - gomodguard
   - gosec
-  - gocritic
-  - revive
+  - gosimple
+  - govet
+  - maintidx
+  - makezero
   - misspell
+  - musttag
+  - nakedret
+  - nilerr
+  - nilnil
+  - noctx
+  - nolintlint
+  - nosprintfhostport
+  - thelper
+  - typecheck
   - unconvert
+  - unused
+  - usestdlibvars
+  - whitespace
+  disable:
+  - cyclop
+  - dupl
+  - exhaustruct
+  - forcetypeassert
+  - funlen
+  - gci
+  - gochecknoglobals
+  - gochecknoinits
+  - gocognit
+  - gocyclo
+  - godot
+  - godox
+  - err113
+  - gofumpt
+  - gomoddirectives
+  - iface
+  - ireturn
+  - lll
+  - mnd
+  - nestif
+  - nlreturn
+  - nonamedreturns
+  - paralleltest
+  - prealloc
+  - predeclared
+  - recvcheck
+  - revive
+  - staticcheck
+  - stylecheck
+  - tagliatelle
+  - testpackage
+  - tparallel
+  - unparam
+  - varnamelen
+  - wastedassign
+  - wrapcheck
+  - wsl
+  # Enabling presets means that new linters that we automatically adopt new
+  # linters that augment a preset. This also opts us in for replacement linters
+  # when a linter is deprecated.
+  presets:
+  - bugs
+  - comment
+  - complexity
+  - error
+  - format
+  - import
+  - metalinter
+  - module
+  - performance
+  - sql
+  - style
+  - test
+  - unused
 issues:
   exclude-rules:
     - path: _test\.go